package com.xhu.collegestudentrentalsystem.module.user.service;

import com.xhu.collegestudentrentalsystem.module.user.entity.House;
import com.xhu.collegestudentrentalsystem.module.user.entity.HouseOrder;
import com.xhu.collegestudentrentalsystem.module.user.entity.Page;
import com.xhu.collegestudentrentalsystem.module.user.entity.User;

import java.util.Date;
import java.util.List;

/**
 * @author zhu huilin
 * @date 2023/3/13 15:48
 */
public interface IOrderService {

    /**
     * 查询用户在此时间段是否已有该房子的订单了
     */
    public Boolean isCreatedOrder(Date startDate, Date endDate, Long houseId, Long userId);

    /**
     * 生成订单信息
     */
    public HouseOrder createOrder(Date startDate, Date endDate, Long houseId, Long userId);

    /**
     * 根据订单的id查询订单信息
     */
    public HouseOrder findHouseOrderById(Long orderId);

    /**
     * 根据订单id修改订单状态为待支付状态
     */
    public Integer updateOrderStatusToWaitPay(Long orderId, Integer status);

    /**
     * 支付成功，修改订单状态
     */
    public Integer orderPayed(Long orderId);

    /**
     * 查询订单列表信息
     */
    public List<HouseOrder> findOrdersByUser(User user, Page page);

    /**
     * 查询修改已过期的订单，将其状态修改为已过期
     */
    public void findAndUpdateExpiredOrder();

    /**
     * 只修改订单状态
     */
    public Integer updateOrderStatus(Long orderId, Integer orderStatus);

}
